Electronic analysis of athletic performance

ABSTRACT

The subject matter of this specification can be embodied in, among other things, a computer-implemented athletic performance analysis method that includes obtaining, at a computer system, first motion data reflecting motion of a sporting device during one or more drills performed by an athlete. The method also includes creating and storing action data by identifying a plurality of portions of the motion data, where each of the portions correspond to one or more actions by the athlete; comparing the action data for the athlete, with the computer system, to corresponding aggregated action data for a plurality of other athletes to determine a relative skill level for the athlete with respect to the one or more actions; and generating data for a report that reflects the relative development level of the athlete.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims the benefit of U.S. provisional application No.61/028,823 filed Feb. 14, 2008. The disclosure of the prior applicationis considered part of (and is incorporated by reference in) thedisclosure of this application.

TECHNICAL FIELD

This document relates to systems and techniques for monitoring andcomparing certain aspects of athletic performance by a first athleteagainst other athletes.

BACKGROUND

Athletics has become an integral part of society, with multipletelevision channels dedicated to sporting events, with professionalathletes promoting all sorts of products, and with the public holdingstar athletes—both amateur and professional—in high regards, so as tosupport financial rewards such as college scholarships, sponsorshipopportunities, and other revenue-generating careers. With greatergeneral attention on athletics comes greater attention on improvingathletic performance. Today's athletes, beginning as early as theelementary school level, specialize in particular areas and trainyear-round to improve their skills and their conditioning. Withathletics leading to a possibly lucrative career for some, and toacademic assistance in the form of scholarships to others, more and moreathletes have looked to improve their performance in various manners.

Good coaching and personal dedication are some of the best known ways toimprove an athlete's performance. A talented coach can often observesubtle problems in an athlete's style of play, and can direct the playerto correct those problems. Likewise, a talented trainer can direct anathlete to follow certain regimens to improve physiological weaknesses.

Despite the talent and experience obtained by many top coaches orathletic experts, human perception can capture and fully appreciate onlya small subset of the factors that affect an athlete's performance.Thus, despite years of observing how different athletes compete in agiven sport or having competed for many years themselves, the mosthighly skilled trainers and coaches still do not have the ability toquantify very small differences in motion of what they see. Thesedifferences in motion can be the most important elements in comparingand diagnosing a player's skill. Also, techniques that rely on humanobservation and judgment are prone to a high degree of opinion or biasbased on the perceptions of any single observer. This bias, and the widevariability of what any given observer believes they are seeing,negatively affects the advice that coaches and trainers can provide toathletes, and also negatively affects the athletes' perception of theadvice they are being given (i.e., an athlete may ignore good advice ifthey think that the provider of the advice does not appreciate theirabilities).

In some sports that require a combination of physical athletic skill,muscle memory, and hand-eye coordination skills to be used whilesimultaneously moving an athletic object, such as a ball, while underpressure situations, the ability to objectively quantify and comparediscrete skill differences between players is almost impossible usinghuman perception. The net effect of the inability to standardize theunseen elements of skill has been an over-reliance on only themeasurable physical aspects of certain sports, such as athletic speed,strength, and jumping, which causes many highly skilled athletes to beoverlooked.

SUMMARY

This document describes systems and techniques that may be used toquantify and benchmark an athlete's current skill proficiency usingsensors that capture discrete movements of an athletic device, such as abasketball or soccer ball, while it is in motion so as to link athleticproficiency of the athlete to their ability to control the athleticdevice, compare the related performance of the athlete controlling themovement of the athletic device to the performance of other athletesthat has been aggregated to provide base performance indicators, and toprovide feedback for an athlete so that they can improve theirperformance.

Motion-related data from the athletic device, such as acceleration androtation data, can be identified and compiled into meaningful samples,and the samples can be compared to a large number of other samplescollected in a similar fashion from athletes having known skill levels.For example, the characteristics of athletic performance for a certainaction or athletic drill performed while using the athletic device canbe determined for each level of play, e.g., grade school, high school,lower level college (e.g., division II or junior college), higher levelcollege, professional, and elite or all star. Sampled data for aparticular athlete can then be compared to aggregated data, collectedusing the same motion sensing technologies and while performing the samedrills in the same fashion, from other athletes that were known to beperforming at each of these levels, and a level of performance for theparticular athlete may thus be determined.

The drills can be predetermined and matched between and among testsubjects so that the resulting data can be matched and compared asbetween individuals in a statistically significant manner. Drills aredefined multi-step physical processes that an athlete performs, such asdribbling in a particular pattern, shooting a certain number of shotsfrom a defined point on a court, and running through a pattern, such asthrough cones or on a line that can be applied to a floor.

As a result, such techniques can provide an indication to an athlete orto recruiting personnel regarding the objective skill level at which theathlete is performing, either for a particular skill set, or overall foran entire sport. In addition, the results may provide constructivefeedback by suggesting exercises that the athlete can undertake toimprove any deficiencies that the system recognized when comparing theathlete's data to that of other athletes.

In certain implementations, such systems and techniques may provide oneor more advantages. For example, athletes can be analyzed quickly bybeing run through a number of drills that are instantly recorded andeasily transferred to a computing system. Also, the systems can recordfacets of an athlete's performance that would not be observable by acoach watching the athlete, particularly for fast-moving sports thatrequire a combination of athleticism, muscle memory, vision, and thelike to succeed. In addition, the analysis provided by the techniquesprovided herein can be consistent and unbiased so as to provide highquality, objective analysis in a highly scalable system without the needfor personal training of numerous observers. For example, motion sensingtesting systems can be deployed nationally for operation by technicianswho have only limited amounts of training. The analysis, like the datacollection, can be unbiased and scalable, so that it can give an athletea fair evaluation without concern that assertions of favoritism will bemade, and can be completed without needing to train numerous analysts asa system grows.

In one implementation, a computer-implemented athletic performanceanalysis method is disclosed. The method comprises obtaining, at acomputer system, first motion data reflecting motion of a sportingdevice during one or more drills performed by an athlete, and creatingand storing action data by identifying a plurality of portions of themotion data, where each of the portions correspond to one or moreactions by the athlete. The method also comprises comparing the actiondata for the athlete, with the computer system, to correspondingaggregated action data for a plurality of other athletes to determine arelative skill level for the athlete with respect to the one or moreactions, and generating data for a report that reflects the relativedevelopment level of the athlete. The method can also include capturingthe motion data with a plurality of motion sensors mounted inside asporting ball. In addition, the method can include wirelesslycommunicating the first motion data over a short-range connection to thecomputer system.

In some aspects, the wireless communicating is instigated by a requestfrom the computer system to a controller in the sporting ball madeduring period when the sporting ball is not capturing data. In certainaspects, the method can also include determining a relative skill levelfor the athlete corresponding to a first drill at a computer local tothe sporting device, and determining a relative skill level for theathlete corresponding to a subsequent plurality of drills at a computersystem remote from the sporting device. The method can also includegenerating the report to a portable media to be provided to the athlete,such as to paper or a flash memory device. The report can include aranking of the athlete within a continuum of athletic performance andone or more instructions directed to reducing weaknesses identified inthe athlete's performance. Also, the method can include obtaining secondmotion data reflecting motion of the sporting device during one or moredrills performed by the athlete at a time subsequent to obtaining thefirst motion data, and performing a comparison of the athlete'sperformance between obtaining the first motion data and obtaining thesecond motion data.

In some aspects, the method further comprises comparing information fromthe first motion data and the second motion data to data representingathletic development of an aggregated plurality of athletes, to generatea predicted athletic performance trend for the athlete. The data for thereport can also represent an overall skill level for the athlete, and aplurality of levels for each of a plurality of actions that were testedby the drills. In certain aspects, the action data for the athlete andthe aggregated action data for the plurality of other athletes ismatched to common portions of common drills performed by each of theathletes.

In another implementation, a computer-implemented athletic performanceanalysis system is disclosed, and comprises a data collection interfacein a computer system to obtaining first motion data reflecting motion ofa sporting device during one or more drills performed by an athlete. Thesystem also comprises a computer-implemented classifier to compare datacorresponding to the first motion data to corresponding aggregatedmotion data for a plurality athletes to determine a relative skill levelfor the athlete with respect a determine athletic skill. In addition,the system comprises a report generator to generate data for a reportreflecting the relative development level of the athlete. The system canalso comprise a classification rules generator to identify commonfeatures for athletes of a known skill level and to generate rules fordetermining how other athlete compare to the known skill level.

In some aspects, the classification rules generator comprises an expertsystem that identifies common features in motion-related data from theathletes of a known skill level and generates rules that are predictivefor classifying other athletes according to the known skill levels. Thesystem can also include a trend generator for analyzing the first motiondata form the athlete from a first time period and second motion datafrom a second time period for the athlete, and comparing differencesbetween the first motion data and the second motion data to trend datafor the athletes of known skill level to predict a skill level for theathlete.

In some aspects, the system comprises a client computer subsystemproximate to the sporting device and a server computer subsystem remotefrom the sporting device, wherein the client computing subsystem isprogrammed to provide the first motion data to the server computersubsystem, and the server computer subsystem is programmed to provide tothe client computer subsystem the data for a report reflecting therelative development level of the athlete. The server computer subsystemcan include a demonstration mode in which data for a first drill isanalyzed and reported on, and a full test mode in which data for aplurality of drills other than the first drill are analyzed and reportedon. Also, the client computer subsystem can include a wireless interfaceconfigured to communicate with a motion sensing system inside thesporting device.

In yet other aspects, the system further comprises an accounting moduleconfigured to correlate an identity of the client computing subsystemwith an account, and to debit an accountholder associated with theaccount for the report. The report can also include a ranking of theathlete within a continuum of athletic performance and one or moreinstructions directed to reducing weaknesses identified in the athlete'sperformance.

In yet another implementation, an article comprising one or moretangible computer-readable data storage media is disclosed. The mediacontain program code operable to cause one or more machines to performoperations that comprise obtaining, at a computer system, first motiondata reflecting motion of a sporting device during one or more drillsperformed by an athlete; creating and storing action data by identifyinga plurality of portions of the motion data, where each of the portionscorrespond to one or more actions by the athlete; comparing the actiondata for the athlete, with the computer system, to correspondingaggregated action data for a plurality of other athletes to determine arelative skill level for the athlete with respect to the one or moreactions; and generating data for a report that reflects the relativedevelopment level of the athlete.

In another implementation, a computer-implemented athletic performanceanalysis system is disclosed, and comprises a data collection interfacein a computer system to obtaining first motion data reflecting motion ofa sporting device during one or more drills performed by an athlete;means for identifying a skill level for the athlete by comparing datacorresponding to the first motion data to similar data aggregated from aplurality of athletes of known skill level; and a report generator togenerate data for a report reflecting the relative development level ofthe athlete.

The details of one or more embodiments are set forth in the accompanyingdrawings and the description below. Other features and advantages willbe apparent from the description and drawings, and from the claims.

DESCRIPTION OF DRAWINGS

FIG. 1 is a conceptual diagram of a system for electronically measuringathletic performance and providing feedback on the performance.

FIG. 2A is a block diagram of an illustrative computer system forcomparing performance indicators for an athlete to aggregatedperformance indicators for a plurality of other athletes.

FIG. 2B is a block diagram of a computer-based system for evaluatingathletic performance.

FIGS. 3A and 3B are flow charts of example processes for obtainingmotion data relating to an athlete's performance and providing reportsand recommendations in response to the athlete.

FIG. 3C is a flow chart of a process for capturing athletic performancedata for use with a videogaming system.

FIG. 4 is a swim lane diagram showing actions taken by components inmeasuring individual athletic performance and comparing it to groupathletic performance.

FIGS. 5A-5C are example screen shots from a system that provides reportsand recommendations to athletes regarding their athletic performance.

FIG. 6 shows example athletic performance data.

FIG. 7 shows an example of a computer device and a mobile computerdevice that can be used to implement the techniques described here.

Like reference symbols in the various drawings indicate like elements.

DETAILED DESCRIPTION

This document describes systems and techniques for capturing andevaluating athletic performance in a repeatable and objective manner bymeasuring athletes who have been instructed to perform certain drillsthat match drills that other athletes have also performed. In general, asporting device such as a basketball or other ball can be provided with,or be observed by, motion sensors, such as accelerometers and angularrate gyros, to record data about the manner in which an athletemanipulates the sporting device. Additional data may be captured fromthe athlete, such as via laser-based motion recorders, pressuresensitive pads, and shoe-based sensors. The athlete may be directedthrough one or more drills, such as a dribbling or shooting drill, andtheir actions may be recorded through the various sensors as theycomplete the drill. The drill may be well defined so that the data thatis captured may be compared to other instances of the drill, includinginstances in which the same athlete performed the drill at differentperiods ion time, and instances in which other athletes performed thedrill.

The motion data may be captured on a computer system in proximity to thelocation where the athlete performed the drill. The capturing of thedata may occur, for example, via wireless communication between a sensorassembly inside the sporting device and a wireless transceiver attachedto a computer, such as via a USB port or similar interface. The motiondata may then be transformed, sampled, and converted in various mannersand may be compared to data from other athletes that has been aggregatedfor later statistical or similar analysis. The other athletes may haveprovided indications about their level of athletic performance, such aswhether they are varsity high school players, junior college players,division I players, professional players, or other levels of player. Ifthose other athletes performed the same or similar drills undercontrolled conditions (by being instructed by, and observed by, atechnician to ensure that they follow the appropriate steps of a drill),their aggregated data can be compared to the data for the first athleteto determine where, on a continuum of skill levels like that justdescribed, the athlete falls.

Such an analysis may be simple, such as by being based on a singledrill, or it may be complex and involve a large number of drills thattest a variety of skill sets for an athlete. The simple testing may beconducted as an initial test to see if an athlete is interested infurther testing. For example, testing may be provided at a public eventlike an AAU basketball tournament or a 3-on-3 basketball tournament.More complex testing may also, or alternatively, be conducted. Forexample, athletes may attend more extensive testing at fixed athleticfacilities, such as facilities that are relatively common in major metroareas. The additional testing may test a variety of drills that includetests for ball handling, jumping, shooting, and other similar skills.

The test results may be generated at a central facility that is remotefrom the various test centers. Such an arrangement may permit easydeployment of the system, with sensor-fitted balls and wirelesstransceivers being the only hardware that needs to be sent to remotesites in many implementations. Client computers such as laptop computersmay be provided by a technician, and may communicate with a remoteserver over the internet, including through a web browser that has adownloaded plug-in for controlling communication with the sportingdevice and for uploading the gathered information to the server.

The server may in turn include a web server, and the client computer mayreceive information back in the form of an XML and/or HTML document thatcan be shown or otherwise provided to the athlete, with a summary of thedata that was reviewed for the athlete, and a list of instructions andexercises for the athlete in order for the athlete to address anyweaknesses perceived from the testing.

Athletes may also be encouraged to conduct testing at multiple differenttime periods. Such testing may measure the relative progress that theathlete has made. Such relative progress may also be compared toaggregated data on the progress of other athletes. The evidence ofprogress for the particular athlete may be fit in a number of knownmathematical and statistical manners so as to produce a prediction ofthe athlete's near term and longer term expected progress if the athletecontinues at a pace of development that matches the development measurefor other athletes of similar progression.

Referring now more particularly to the figures, FIG. 1 is a conceptualdiagram of a system 100 for electronically measuring athleticperformance and providing feedback on the performance. The system 100generally includes a sub-system that is local to one or more athleteswho are being tested, and a sub-system that is remote from the athletesand includes one or more servers. Although a separated system is shownhere, all of the processing for the system may also be localized at asingle location.

A separated system may provide a number of advantages, however. Forexample, it may eliminate the need to deploy and maintain computers andsoftware in the field. Rather, only limited technology, such as one ormore sporting devices (e.g., balls, shoes, clubs, etc.) need be sentout, and software may be downloaded to computers (such as laptopcomputers) that are already in the field, such as via a web browserplug-in that manages communications with the sporting device and uploadsdevice data. As a result, a company operating the system may reduce itscapital costs significantly by using computers that are already owned byfield personnel and are being used for other purposes. In addition, thecompany can better control who is using its technology, by maintainingownership, for example, of the sporting devices, so that a fieldrepresentative must return the device when their term of representationis over. Also, when field deployment of software occurs via downloadover the internet, a company can push out the programs more easily, andmay also keep them updated regularly with little effort. Moreover, sucha separated system permits the company to maintain better control overits analysis code so that the code is not easily taken and provided to acompetitor, and so that it can be updated and kept fresh in a verycontrollable manner.

A hybrid approach to splitting the duties of the in-field sub-system anda central sub-system can also be pursued. For example, a client devicesuch as a laptop computer may be provided with code and data that issufficient to test an athlete in one entry-level drill, such asdribbling a figure eight. Such distribution of basic testing code maypermit the testing to occur more quickly and reliably than if around-trip to a central server were required. Such reliability can beimportant for entry-level testing also, because frequently such testingwould occur at various festivals and tournaments that are far fromdedicated IT equipment.

In the hybrid system, the server system could be used for subsequent andmore extensive testing, after athletes have been introduced to thesystem and have decided they would like to receive additional testingand guidance. In this manner, the system 100 can be introducedconveniently to athletes and they can be given an inexpensive trial ofthe system's capabilities with the entry-level drill. Although securitymay be compromised for testing of the one drill (because the analysiscode will have been sent to remote client devices), a competitor couldnot make much from the one drill in any event, so the risk to securityis minimized.

In FIG. 1, the local computer sub-system is made up of a laptop computer108, a wireless transceiver 110, and a printer 112. The computer 108 maytake other forms and may be loaded with software to cause an athlete'sdata (from the measured motion of a sporting device that the athletemanipulated and/otr other sources) to be analyzed, and may cause reportsto be provided to the athlete. The computer 108 may be loaded withnative applications to receive such input and produce such reports, andto also analyze the input data with respect to similar data from otherathletes. Alternatively, the computer 108 may be loaded with basicworkplace applications, such as a web browser, and the system 100 mayprovide a downloadable plug-in for the browser that will controlcommunications with the transceiver 110 and with a server.

The transceiver 110 may take a variety of forms, and may be directed tocapturing motion data from a sporting device in the form of a basketball104 in this example. The basketball 104 may be of a common size andshape, and may contain a sensor assembly that includes accelerometersand angular rate gyros mounted inside it, in a way that does notinterfere substantially with the handling of the ball, to capture motionof the ball 104 in a manner that is usable to the system 100. Thetransceiver 110 may in turn communicate with the computer 108 in afamiliar manner, such as through a USB port or the like, so as to makerelatively simple the use of the computer 108 with the system 100 tocapture motion data.

The printer 112 is shown as an example of one way in which a report onan athlete's performance can be presented to the athlete. For example,certain numerical figures or graphs may be generated to visually showwhere the athlete scores on a continuum of skill levels. In addition,recommendations may be generated in a textual format to be given to theathlete, with particular instructions on how the athlete can improvetheir performance, including suggested exercises or drills to perform inorder to improve the athlete's muscle memory for a particular task. Forexample, if the testing of an athlete indicates that the athlete doesnot release the ball during a dribble with adequate velocity, the system100 can recommend drills and conditioning routines to address such asituation.

In addition to being provided on paper from printer 112, information maybe provided to an athlete regarding his or her performance via othermechanisms. For example, data for an athlete may be copied to a thumbflash drive or other similar mechanism. The athlete may then return to anext testing session and provide the memory mechanism for use incomparing the athlete's skills at an earlier time to their currentskills, and extending out any recognized trends to give the athlete orsomeone reviewing the athlete an opportunity to see if the athlete issimilar in skills to other athletes who have excelled over time, or havestalled and fallen behind comparable athletes.

The data for an athlete may also be stored in the system 100, and theathlete may provide identification information in subsequent visits sothat prior test data for the athlete is joined with subsequent testdata. Access to data may be provided to the athlete via a message sentto the athlete (e.g., via text message or e-mail) or by providing theathlete with log in credentials to a central site. A combination of suchmethods for provided the athlete with access to the data may also beemployed. In addition, reporting tools may be provided under any of theexamples above, so that the athlete may return home and produce customreports and otherwise manipulate the data on their performance.

An athlete 102 is shown in FIG. 1 dribbling the basketball 104. Forexample, the athlete may be instructed to dribble the ball in a figure-8pattern several times, or for a fixed number of times so as to record astatistically relevant sample of items to record and analyze, whilemotion data is being captured by sensors in the basketball 104 andperhaps via other sensors. The athlete is also shown as performing on apad 106. The pad 106 may be pressure sensitive and may provideadditional data that may be coordinated with the motion data from thesporting device 104. For example, the relative timing between up anddown motion of a ball and contact timing of a basketball player's feetmay indicate certain room for improvement in the athlete's skill set.

In addition, other sensors may be employed along with the sensors in thesporting device, such as laser location finders that may indicate therelative positions of points on the athlete's 102 body, or motion dataof the basketball 104 that cannot be fully captured by sensors insidethe ball. Certain sensors may also identify information relating to theactual time that a drill starts and stops, or how quickly an athletemoved from point A to point B while simultaneously controlling theathletic device, how consistently the athlete handles the ball, thevariability between dribbles, etc. Also, sensors may be used todetermine athleticism, such as in vertical jump tests, both to measurethe height of the athlete off the ground and to measure the accelerationof the athlete off the floor.

The sensors may generate a variety of data types. The sensors canmeasure athletic stride, number of impacts, change of direction, etc,while sensors in a ball would capture the muscle memory skillsassociated with handling the ball while moving in very quick and shortbursts. Also, the timing of data for various sensors may be aligned andsynchronized so as to delver more information on the athlete'sperformance. For example, laser-based sensors, when combined within-ball sensors, may provide an indication when a player loses a dribbleduring a drill, even in situations where either sensor group alone wouldnot make the same determination.

Sensor-equipped specialized athletic devices that differ from thecorresponding devices that are used in competition may also be used fortesting athletes. For example, sensors may be provided in a weightedball, and an athlete may be directed to execute drills that can deliverpredictive or diagnostic data on a player's core strength. For example,the heavy ball can be thrown, and the sensors can capture acceleration,distance, and speed. As another example, an athlete can perform a seriesof repetitive drills with the torso, such as situps. The sensors canmeasure force, acceleration or other movements, the average and medianof these measurements, and any degredation of these elements over thecourse of the entire drill. These measurements can be used to benchmark,compare, and predict core athletic strength that is critical in manysports.

Certain of the information may be compared to aggregated data for otherathletes, while certain data may be provided in a form that does notinvolve such comparison. For example, drills for particular skills maybe compared to other athletes, while core strength measurements maysimply be provided in raw for or in some revised form (e.g., on a scaleof 1 to 10) but without the need to place such numbers into somepreexisting skill level relative to other athletes. In this manner,various sorts of data may be made available for review by an athlete orby others from a single location—whether the particular data is bestpresented in comparison or as an absolute.

The local client sub-system may be connected to the server sub-systemthrough a wireless connection, such as an aircard or similar structureor a WiFi card and WiFi hot spot. A network 114, such as a cellular datacarrier network 114 may transfer the data and communicate through anetwork 116 such as the internet, to the server sub-system shown here asa single server 118, but which could include a large number of serversto receive various types of requests. The server 118, as described inmore detail below, will have previously been provided with datareflecting skills for a number of other athletes who already ran therelevant drill or drills. The previously processed data will alsoindicate the skill level of several of the athletes.

The server 118 can thus compare the data representing the performance ofone athlete acquired by the client sub-system, to the information thatis aggregated for performances of a group of other athletes whoserelative levels of development are generally known. The server may thenreturn to the computer 108, through the networks 114 and 116,information that can reflect such a determination and provide additionalhelpful data and advice to the athlete. For example, the computer 108may be used to print out a number of pages of mark-up language material(e.g., HTML) that include data and graphs to show the athlete what wasmeasured from them, and what comparable values have been observed forplayers from various levels of a sport. In addition, variousinstructions can be provided in a similar manner, which the athlete cantake home with them and read to improve a particular skill set or drill.Such data and reports may be provided via printer 112, or via anelectronic file such as an HTML or PDF file stored to removable portablemedia that is given to or provided by the athlete. For example, asponsor at an athletic event may supply free flash memory containing thesponsor's name, and the data for an athlete may be stored onto the flashmemory by attaching the flash memory in a well-known manner (e.g.,through a USB port).

An athlete can also capture data to be used in customizing a videogameexperience. The athlete can first perform a variety of drills to obtainstatistics indicative of their overall current skill levels in a sport.They may then have the figures loaded to portable memory devices thatcan be used with videogame systems, whether console or PC. Such athletesmay then load the data to a game that involves an athletic performancethat uses the skills tested by the athlete, and their character oravatar in the game may perform according to their actual real-worldskill level, with multiple different variables being identified todefine the full performance palette for the athlete. In this manner,friends may set up head-to-head battles in sporting games, where theirown personal skill levels affect how the simulated videogame contestwill turn out. The athletes may also thus be motivated to return foradditional testing after they have practiced so that they can havebetter baseline skill numbers that will improve their performancevis-a-vis other players in the game.

FIG. 2A is a block diagram of an illustrative computer system 200 forcomparing performance indicators for an athlete to aggregatedperformance indicators for a plurality of other athletes. In general,the system 200 is similar in arrangement to system 100 in FIG. 1, butmore detail is shown here about a server system 202 that may be used toprovide evaluation data for athletic performance.

Starting at the client side and then moving to the server system 202,there is shown a sporting device in the form of a basketball 228, whichmay communicate motion data that is measured by sensors inside thebasketball 228 with a wireless transceiver 226. The wireless transceiver226 may in turn provide the motion data to a computer 222 that may passthe information to a network 220 such as the internet and/or a wirelessnetwork like a WiFi network or cellular data network, and on to theserver system 202. The computer 222 is also provided with one or moreoutput devices in the form of a printer 224 and computer monitor, andmay also have ports for writing to portable memory devices carried byathletes who are tested by the system 200. The client-side system inthis example can be operated in a manner similar to the system 100described in FIG. 1.

On the server side (which again, may include one or a number of servercomputers, including web servers, database servers, and othercomputers), the server system 202 includes a number of components toassist in processing data regarding athletes' performance in a number ofdrills. (which may be among a number of additional components that areomitted here for clarity)

First, a number of data stores 212-218 hold data that is relevant to theathletic evaluation functions. For example, a classified data store 212includes information from past athletes whose performance data has beengenerated and who are classified into certain skill levels. The data maybe aggregated from across a large number of athletes so as to make thedata meaningful. Also, each set of data may be correlated to aparticular drill or exercise performed by the athlete, so that the datacan be properly compared to data for other athletes that performed amatching drill or exercise. (A matching drill is a drill that is thesame as a first drill or that includes some substantial superset orsubset of the first drill.)

Classification rules dataset 214 may store data representing rules thatare derived from analyzing the classified data, and may includeheuristic rules or other rules to apply to incoming data to determine anappropriate skill level of an athlete who generated the data. Forexample, a set of rules may be combined to determine a skill level of afreethrow shooter, such as the number of times a free throw rotates andthe hangtime and entry angle of a free throw.

Client data datastore 216 may store two or more types of data. Forexample, it may store information about the particular client computer222 that is sending testing data to the server system 202, such that anaccount associated with the computer 222 or with a login made throughthe computer 222 can be debited. Such debiting may occur where anoperator of the client system collects money for providing the testingservices, and some of the money is to then be provided to theorganization running the server system. In such a manner, the centralsystem may best be able to audit the operations of field personnel andto track accounting functions properly (because it will know the numberof transactions). The client data may also relate to athletes that haveused the system 200. Such client data may include raw motion data thathas previously been uploaded in combination with an ID for theparticular athlete, in addition to a history that summarizes tests anddrills the athlete has completed, and reports and recommendations thathave previously been provided to the athlete. Storing such data maypermit the system 200 to provide ongoing support to an athlete as theydevelop, including by providing reports that show past progress of theathlete at certain tasks, and projections for the athletes' developmentwith respect to those tasks.

A reports data store 218 stores formats for various reports that may beprovided to athletes or advisers to athletes. The reports may take avariety of forms, such as tabular data comparing an athlete to otherathletes or groups of athletes, graphs making similar comparisons, andtextual reports providing recommendations for drills and exercises thatan athlete may undertake to improve his or her performance (See, e.g.,FIGS. 5A-5C). In addition, the reports can include tracking modules thatcan be downloaded to a portable media owned by the athlete, where theathlete may track developmental milestones using the modules. Forexample, an athlete can enter the completion of certain exercises andthe results of exercises that the athlete has completed, and the modulemay communicate with the system 200, either immediately (e.g., toschedule follow up testing when the athlete's results indicate that theymay be ready to enter a new level of development) or the next time theathlete comes in for testing. Tracking actual activity of the athletemay improve the advice given to the athlete. For example, if the dataindicates that the athlete has worked very hard on a particular skillset or muscle group, but is not showing development at a sufficientlevel, the routine for the athlete may be changed by identifying theathlete as sharing characteristics with a different group of athleteswho previously responded poorly to one routine, but responded better toa different routine.

Other components shown in the figure provide particular functionalityfor the server 202. For example, a data collection interface 204 mayobtain uploaded data about athletic performance form the computer 222.Such an interface may take a variety of forms, including as a web serverthat serves forms that a technician may fill out for each athlete (e.g.,to include identification information and information about the drill ordrills performed by the athlete), and that include selectable controlsthat cause data from the basketball 228 to be gathered and then uploadedto server system 202.

The data collection interface 204 may also screen uploaded data toensure that it matches an appropriate profile for any particular drillthat the data supposedly represents. For example, the interface may testto ensure that the data represents a long enough time period, anappropriate number of dribbles, appropriate motion data for the drill(e.g., there should be some bouncing for a dribbling drill), and mayprovide an alert back to a technician (e.g., to repeat the testing) ifthe data does not appear to be proper data.

A classification generator 206 develops rules for placing athletes intoparticular rankings or classifications relative to other athletes ofknown classification. The rules are selected so as to providestatistically predictive indicators of real athletic performance thatcan be derived from motion data and other data compiled from athleticdrills. The classification generator 206 may, for example, receivemotion data from a large plurality of athlete who have been classifiedas falling into particular skill levels. The classification generator206 may analyze the data in various known mathematical manners toidentify correlations between data points for athletes of a particularskill level or similar skill levels. For example, the classificationgenerator 206 may recognize that athletes of a particular skill levelfrequently dribble a basketball according to a particular time pattern,or that the ball spends a certain amount of time cradled in their handsduring a dribbling exercise. Where the athletes provided their data in acontrolled manner by conducted a predefined and repeatable drill, suchcorrelations can be determined to have significance, and can then bemade into classification rules by the classification generator 206.

The rules for classification may also be generated with manual input.For example, an operator of a system may determine particular aspects ofperformance that have been correlated with an athlete's skill level.They may then test a number of athletes at known skill levels toidentify values for that aspect of performance at each skill level (andto confirm that there is a correlation between the values of the aspectand skill level), and may store the measured figures for that aspect ofperformance.

A classifier 208 in the system 200 uses such rules, in whatever formthey may be provided, to classify future athletes according to thestrengths, abilities, and weaknesses. The classification may occuraccording to heuristics, by a degree-of-match determination acrossmultiple factors to corresponding data for athletes of known skilllevel, or by other acceptable mechanisms. Such classification may occurby obtaining data relating to measured motion data for a new athlete inpredefined drills that correspond to the drills performed by the priorathletes of known skill level.

The classifier 208 may also include a trend analyzer that may correlatean athlete's data at different points in time, to the performance dataof other athletes at different points in time. Thus, the other athletesmay have been tested over time, and may be provided with identificationnumbers so that the different testing can be matched (though theidentities of the athletes themselves may be anonymized). Varioustrending techniques may be performed to find prior athletes who trendedin particular manners for one skill or a predefined group of skills thathas been determined to develop in parallel. The new athlete may alsoprovide information about their skill level, which information may befed back into the system 200, where the new athlete will joint the ranksof the preexisting athletes of known skill level. Classification andcomparison may thus be completed again to strengthen the system's rulesas time moves on and additional athletes are added to the system.

A report generator 210 may take raw data from the classifier and mergeit with format data from the reports data store 218. Variouspre-existing report formats may be used, and each athlete may beprovided with a variety of reports, where the number and detail of thereporting may depend on a level of service purchased by the athlete. Forexample, basic data from a number of athletes for a particular skill maybe pulled from the client data data store 216 (along with indicators ofthe skill level of the athletes), and corresponding data for the currentathlete may be placed in line with that other data. The current athletemay thus readily see how he or she stacks up relative to others in skilllevel, and with respect to the particular drill. For example, an highschool athlete may perform at a division II college level for a certaindrill and may readily see how they fit with other division II players inthat regard, though they may match to junior varsity players withrespect to another drill or skill set. Such feedback can be very helpfulis letting the athlete determine where they should focus their training.

An athlete can also identify a group with which they would like to becompared. For example, a high school athlete may wish to be compared toall other athletes who have tested on the system in their region orsection. Or they may wish to be compared to other athletes on theirteam. Such identifications of athletes as belonging to certaingeographical groups may be used in addition to identifying them asbelonging to certain developmental groups.

Also, an athlete can provide information to third parties to permitaccess to part or all of their testing data. For example, an athlete whois testing at a division II level on certain skills may provide accessto a recruiting coach at a division I school to show the coach how theathlete has made great strides in those areas, and thus will be at adivision I level by the time they start playing college sports.

Thus, by using system 200, various athletes can obtain both quick andminimal feedback, and longer and more in-depth feedback, on theirathletic performance in a convenient manner. The system 200 may provideobjective reviews for certain aspects of athletic performance that maythen serve as a baseline for more objective review of the athlete (e.g.,where tests do not reflect heart or leadership ability).

FIG. 2B is a block diagram of a computer-based system for evaluatingathletic performance. The system in this example is similar to thatshown in FIGS. 1 and 2A, but is focused more on the organization of anoperational system rather than on the technical provision of data toathletes. The system is focused around a skill database. The skilldatabase stores data of various kinds that reflects performance of alarge number of athletes of different skill levels for a number ofconsistently-applied drill and other activities. The data may reflect,for example, motion data collected from sensors in an athletic devicethat is separate form an athlete, such as a soccer ball or basketball,and sensors attached to the athlete, such as on a vest or in a shoe orshoes. Certain of the athletes represented in the skills database mayhave their relative skill level associated with each round of testing,such as according to gross levels (e.g., grade school, high school,college, professional, etc.) or at a more detailed level (e.g., rankedat many levels, and perhaps having different ranks for different drillsor skill sets). Other of the athletes may not have an assigned skilllevel, but may instead be looking to have the system tell them wherethey stand with respect to the skill levels of other typical users.

Testing and reporting for athletes is shown to the left of the skilldatabase. In this example, two types of operators are identified ashaving access to the skill database for providing athletes withevaluation data. First, independent test centers may provide testing andevaluation to members of the general public. They may have clientsystems like those discussed above, to collect the data from athletessuch as youth athletes at camps, performance improvement centers, andthe like, and may deliver reports and recommendations to the athletes.They may also collect payments from the athletes and remit portions ofthe payments to an operator of the skill database.

The second type of operator is the national accounts operator. Suchoperators may provide premium testing services and may be more closelytied to an regulated by the operator of the skill database. Suchoperators may visit important accounts such as college sports teams, andmay conduct mass testing of athletes for such teams. Again, they mayprovide the raw data for the testing to the operator of the skilldatabase, and may receive report and recommendation data in return. Insuch situations, the reports may be more detailed, and may also includegrouped reporting functionality. In particular, if a team is tested andthe testing indicates a pronounced occurrence of a certain weakness inmembers of the team, the coaching staff or conditioning staff may adddrills or exercises to address the weakness on a more global scale,rather than simply for a particular athlete.

The skills database may also be accessed, sometimes for a price, byother organizations that do not collect data on athletes, as shown tothe right of the figure. First, recruiters may access data in the skilldatabase to help them make decisions about recruitment. Each athlete mayidentify, to the system, the schools to which they are applying, andeach of the recruiters for such schools may register with the system ina manner that identifies them as being related to their school, and thusgives them access to data for athletes that have identified themselvesas being interested in the school. The recruiters may be provided withtools that allow them to see testing scores for various athletesside-by-side, so that they can better compare their prospects.

Athletes may also include ancillary data for such a system, to bereviewed by recruiters. For example, each athlete may be provided with apreformatted home page where they can post information about theiracademic success (e.g., their grades and volunteer work) and videohighlights of their play (or links to video sites that house thehighlights). Links may be provided to such pages so that recruiters mayobtain a more complete picture of a recruit. In this manner, the systemcan serve as a national clearinghouse for athletes interested incollegiate opportunities.

As shown in the figure, advertisers or other third parties may beinterested in accessing the system. Advertisers, for example, may wishto promote products, such as sports drinks, to user who access thesystem. In addition, advertisers may wish to identify athletes thatidentify themselves as using the advertisers' products so as toestablish a connection between exceptional performance and the products.In addition, advertisers may wish to review anonymized athleticperformance information to determine where in the country certain usersare most interested in such testing, so that the advertisers may targettheir budgets to such areas.

FIGS. 3A and 3B are flow charts of example processes for obtainingmotion data relating to an athlete's performance and providing reportsand recommendations in response to the athlete. FIG. 3A generally showsactions for testing an athlete and then providing a report andrecommendation to the athlete based on that testing. FIG. 3B generallyshows a two-part process of obtaining testing data for certain athletesso as to train a system, and then obtaining testing data for otherathletes so as to slot those later athletes into an appropriate skilllevel based on the data that has previously been obtained.

Referring now to FIG. 3A, a first action involves obtaining motion datafor an athlete from a ball or other athletic device, in addition toother data describing an athlete's performance (box 302). The action ofobtaining the data may involve a server system communicating with aclient computer like that discussed above to obtain information for anathlete. The gathering of the information may first have involvedregistering the athlete into a system such as one of the client systemsdiscussed above, and then having the athlete perform a predefined drillwhile sensors collect data on the athlete's performance. Sensor systemsmay have stored the data and then relayed it to the client computer.Where there are multiple sensor systems, the client computer may havecombined the information and forwarded it to the server system.

At box 304, the motion data is aligned to particular tasks and is thensampled. For example, in a free throw shooting exercise, player maydribble the ball one or more times before shooting and may pausedifferent amounts of time before shooting. Such delays need to benormalized out of a system so that common parts of the drill may becompared as between multiple athletes. Also, all of the data in thedrill is not relevant to all analyses. For example, one analysis may beinterested only in the amount of time a ball stayed in a player's handduring a dribble, so the multiple instances of such activity may beextracted or sampled from the raw test data.

At box 306, the athlete's data is compared to aggregated data from otherathletes. These other athletes may have provided a system with theircurrent skill levels, and thus, the athlete under test may be placed ina skill level of other users who had similar performance on theparticular drill. Certain aspects of the drill (e.g., time in hand for adribble, number of bounces of the dribble, etc.) may be combined toreach a composite evaluation, and data from multiple drills may also becombined (e.g., for ball handling characterization under a number ofdifferent situations).

Modes of improvement are identified from the comparison at box 308. Forexample, if a dribbling exercise indicates a muscular weakness in aplayer (because release velocity is lower than normal), the system mayidentify a weightlifting regimen that has been determined to strengthenmuscles related to release velocity. Other modes of improvement may alsobe identified, and actions to result in the improvement may be found.

At box 310, a report and recommendations for the athlete are generated.The report and recommendations may be in the form of an electronicdocument, such as an HTML document, that displays data for the athlete'stesting regimen along with data for comparable athletes who haveundergone the same regimen. In addition, graphical comparisons may bemade, and text write-ups may be provided from pre-existing modularreport components to give the athlete advice on steps that they can taketo improve their athletic performance.

In FIG. 3B, training of a system is followed by testing of an athlete ofunknown skill or skill level. At box 312, motion data form athletes ofknown skill levels is obtained. Such data may be generated by having theathletes complete questionnaires about their level of play (e.g., arethey in high school, are they all-conferences, what is their scoring,assist, and rebound average, etc.) and then running the athletes throughpredetermined drills while collecting data regarding the athlete'sperformance in the drills, such as motion data of a ball manipulated bythe athletes. Each of the athlete's data 314 may then be parsed foranalysis, such as by aligning the data and sampling the data for theportions of a drill that are relevant to a particular task. In thismanner, the data may be prepared for an accurate apples-to-applescomparison between and among different athletes.

At box 316, correlations are identified for sampled data for each taskon which the system is testing. The tasks may be pre-identified byoperators of the process, such as when it is known that a certainparameter closely correlates with improved athletic performance.

In other situations, experts systems or other learning systems may beused to identify correlations in data, and thus to identify correlationsthat operators of a system may not have previously recognized as beingcorrelated to improved athletic performance. For example, perhapscertain top level athletes have a particular hitch in their dribble thatallows them to control a ball better without being called for carryingit. Such a hitch may be imperceptible to human observation but may bepicked up by motion sensors, and identified by such a learning system.

Where the identified correlations are strong enough to infer some levelof causation between the tested factors and actual athletic excellence,correlation rules may be defined, at box 318. These rules may take intoaccount a number of factors form the observed athletic performance dataand may generate one or more indicators of true athletic performance forcomparison to other test data.

Various machine learning techniques may be used to develop rules thatbest match correlations that appear in the data of athletes having knownskill levels. For example, various well understood techniques mayinitially be employed to identify aspects of the motion data that may beindicative of performance. Data for those particular aspects may beisolated by aligning the data for different athletes and then focusingon a time window immediately around the relevant data.

With such sampled data points identified, the data may be used to traina classifier system. For example, a number of candidate weak classifiersmay first be identified, where weak classifiers can be analogized tosmall rules of thumb that may or may not be predictive of performance,but are at least somewhat predictive in some circumstances. The weakclassifiers may be recursively applied to examples of the sampled datausing a boosting technique, such as Adaboost, to develop a strongclassifier that may be a combination of the weak classifiers that havebeen determined to be “best.” Additional post-processing clean up mayalso be performed on the data to better develop a strong classifier.

After this training period on the data from athletes of known skilllevel, the strong classifier may be applied to data from athletes ofunknown skill level. Such a process may be used to fit the new athleteinto the prior athletes so that a strong, objective comparison can bemade by the system. Other various known techniques for identifyingappropriate portions of the data set to test, and for fitting that datafor a subsequent user with data for prior users may also be employed.

The data developed thus far may then be used in a run time phase tomeasure the performance of other athletes. At box 320, data for such anunknown athlete is obtained, and at box 322, the data is parsed,filtered, or otherwise sampled, in a manner that matches that for theprior athletes in box 314. The correlation rules defined in box 318 maythen be applied for the identified tasks to the data for the unknownathlete (box 324). The rules may then place the unknown athlete withinperformance indicators for athletes of known developmental or skilllevel (from the first phase), and the unknown athlete may be classifiedas having a skill level comparable to those other athletes (box 326).Finally, a report and recommendation for the athlete may be provided(box 328). The report may be provided, for example, from a server systemover a network to a client computer, and may in turn be provided fromthere to the athlete for their review.

FIG. 3C is a flow chart of a process for capturing athletic performancedata for use with a videogaming system. In this example, the videogamewill be a playground basketball game for one-on-one or two-on-two play.The system may be enhanced by defining the abilities of each player inthe game according to the real-world abilities of the person controllingthe player. Thus, for example, if one person dribbles strong to theright and weak to the left, their avatar in the game will do the same.Such a system may be particular interesting to players, as it recreatesreal world head-to-head competition but in a more convenient format(e.g., players can play at night after a gym is closed, and over anetwork from their respective homes).

At box 330, motion data from a ball and/or other sources is obtained fora particular player, such as in the manners discussed above. At box 332,the motion data is aligned to particular tasks (e.g., ball release on adribble) and is sampled for the particular task. At box 334, the motiondata is converted into athletic performance indicators, as in mannerslike those discussed above. Thus, for example, a player may be given ascore from 1 to 100 for certain aspects of basketball play, such as a“first step” speed to the left and the right. Such scores may be storedas parameters for predefined fields that are supported by a videogamefor the users. At box 336, the indicators are copied to a portable mediaof one of the players, such as to a flash memory by a client computerlike that shown above, or by network download from a system such as thatshown in FIGS. 1, 2A, and 2B. The player/athlete may then carry theportable storage media to their gaming system (unless a network downloadoccurred directly to the system), where the parameter values may beloaded into a game in a familiar manner. At box 340, the performance ofan avatar in a game is modified using the performance indicators derivedfrom the player's actual testing.

FIG. 4 is a swim lane diagram showing actions taken by components inmeasuring individual athletic performance and comparing it to groupathletic performance. The particular actions are similar to thosediscussed above, but show an example of how particular actions may beperformed by various portions of a system. At box 402, motion for adrill is sensed and motion data is stored (e.g., from an in-devicesensor assembly and/or from sensors outside the device). At some laterpoint, such as after the drill or drills are complete, the clientcomputer probes or interrogates the ball (box 404) and the ball respondsby transmitting the data to the computer (406).

The computer than receives and stores the data (box 408). The drillsrepresented by the data may have been performed in a particular orderaccording to a program being followed by the technician that is runningthe system and instructing the athlete. Thus, if multiple drills wereperformed, that may be parsed out into their individual components atthis or another stage for more accurate analysis. At box 410, the clientcomputer performs a simplified analysis and generates a report. Suchactions may simply include posting the athlete's identifying informationinto a ranking of skill levels that may be displayed on a tote board atthe site of the testing. Such posting may allow athletes at acompetition to see where they stand relative to other athletes that havetested at the same event, and may encourage other athletes to try thetesting service.

The remaining boxes show actions at a subsequent time, such as severaldays after the first actions. At box 412, motion is again sensedrelative to the athlete's performance, and motion data is stores. At box414, a client computer (which may be the same as or different than theclient computer in the first instance) may probe the ball, the ball mayin turn transmit the data (box 416), and the computer may receive andstore the data, perhaps including by parsing or otherwise reformattingthe data (box 418). In this instance, the drills that were tested aremore extensive than in the first instance, so the client computeruploads the data (box 420) to a remote server system that in turnreceives and stores the data (box 422). The server system may associatethe data with multiple identifiers, including an identifier for theathlete (so that the athlete's data may be compared to other data onthat athlete so as to judge the athlete's progress) and for the operatorof the client computer (so that appropriate accounting activities maytake place relative to that entity).

At box 424, the server system classifies the athlete in comparison toother athletes using aggregated athletic performance data for thoseother athlete performing matching drills at a prior time period. Suchclassification may occur, for example, using the techniques described indetail above. The server system may also generate information to bereviewed by the athlete or a third party, such as reports andrecommendations (box 426) and may, in appropriate implementations,return that information to the client computer, where it may in turn beprovided to the athlete in various manners (box 428). The informationmay also be returned to the client directly, such as by the clientaccessing a message sent by the server system and/or by the athletelogging into an on line account with a company that operates the serversystem.

FIGS. 5A-5C are example screen shots from a system that provides reportsand recommendations to athletes regarding their athletic performance. InFIG. 5A, data is shown in a general tabular reporting format for testingat different points in time for a number of drills. The athlete canreview such data to see where they stand vis-à-vis other athletes and tosee their relative progress over time. The report first provides anumber of general descriptive figures at the top, to provide somebackground on the athlete. The report them shows testing data forvarious skill sets, including some that are aimed more directedly atcore athleticisms and others that are directed to finer skills. A skillprediction is provided in a familiar form, with an indication of howstring the data indicates such a prediction to be, At the bottom of thereport, development of the particular athlete is shown, where theathlete has been tested multiple times.

In FIG. 5B, the athlete's comparison to other athletes is a centralfocus. The athlete is shown data that describes how they compare tovarious percentiles of other athletes at the competitive level. Thecomparison can be cut along different dimensions, such as age group,height group, and geographic zones (e.g., local, regional, state, andnational).

In FIG. 5C, a textual recommendation is provided to the athlete, so thatthe athlete may review it and train to improve weaknesses that thesystem identified in their performance. Here, the system recommendsadditional work directed to improve the speed with which the playerreleases a jump shot, among other things.

FIG. 6 shows example athletic performance data collected from playersperforming a basketball drill using a basketball having three gyrosensors and three accelerometers. One gyro sensor records and reportstilt, a second records and reports pitch, and a third records andreports yaw. The three accelerometers record and report accelerationmeasured in g forces in all three planes. The gyro sensors andaccelerometers can be configured onto a circuit board that is placedinto an athletic device (e.g., a basketball) in a manner such as thosedescribed in U.S. Pat. Nos. 7,021,140 and 7,234,351.

The data regarding tilt, pitch, and yaw can be compiled to create a spincomposite as shown in the first column of panels (top and bottom) ofFIG. 6. The spin composite allows for the detection and assessment ofspin reversals. The data regarding acceleration can be compiled tocreate a force composite as shown in the second column of panels (topand bottom) of FIG. 6. The force composite allows for the detection andassessment of acceleration forces placed on an athletic device in threedifferent axes. The spin and acceleration composites can be usedindividually or in combination to provide performance information abouta player's ball handling, ball shooting, and ball kicking (in the caseof soccer) abilities. The top panels (player #1) show the spin compositedata and the acceleration composite date for a division II player havingsuperior muscle memory and ball handling ability. The bottom panels(player #2) show the spin composite data and the acceleration compositedate for an average high school player.

FIG. 7 shows an example of a generic computer device 700 and a genericmobile computer device 750, which may be used with the techniquesdescribed here. Computing device 700 is intended to represent variousforms of digital computers, such as laptops, desktops, workstations,personal digital assistants, servers, blade servers, mainframes, andother appropriate computers. Computing device 750 is intended torepresent various forms of mobile devices, such as personal digitalassistants, cellular telephones, smartphones, and other similarcomputing devices. The components shown here, their connections andrelationships, and their functions, are meant to be exemplary only, andare not meant to limit implementations of the inventions describedand/or claimed in this document.

Computing device 700 includes a processor 702, memory 704, a storagedevice 706, a high-speed interface 708 connecting to memory 704 andhigh-speed expansion ports 710, and a low speed interface 712 connectingto low speed bus 714 and storage device 706. Each of the components 702,704, 706, 708, 710, and 712, are interconnected using various busses,and may be mounted on a common motherboard or in other manners asappropriate. The processor 702 can process instructions for executionwithin the computing device 700, including instructions stored in thememory 704 or on the storage device 706 to display graphical informationfor a GUI on an external input/output device, such as display 716coupled to high speed interface 708. In other implementations, multipleprocessors and/or multiple buses may be used, as appropriate, along withmultiple memories and types of memory. Also, multiple computing devices700 may be connected, with each device providing portions of thenecessary operations (e.g., as a server bank, a group of blade servers,or a multi-processor system).

The memory 704 stores information within the computing device 700. Inone implementation, the memory 704 is a volatile memory unit or units.In another implementation, the memory 704 is a non-volatile memory unitor units. The memory 704 may also be another form of computer-readablemedium, such as a magnetic or optical disk.

The storage device 706 is capable of providing mass storage for thecomputing device 700. In one implementation, the storage device 706 maybe or contain a computer-readable medium, such as a floppy disk device,a hard disk device, an optical disk device, or a tape device, a flashmemory or other similar solid state memory device, or an array ofdevices, including devices in a storage area network or otherconfigurations. A computer program product can be tangibly embodied inan information carrier. The computer program product may also containinstructions that, when executed, perform one or more methods, such asthose described above. The information carrier is a computer- ormachine-readable medium, such as the memory 704, the storage device 706,memory on processor 702, or a propagated signal.

The high speed controller 708 manages bandwidth-intensive operations forthe computing device 700, while the low speed controller 712 manageslower bandwidth-intensive operations. Such allocation of functions isexemplary only. In one implementation, the high-speed controller 708 iscoupled to memory 704, display 716 (e.g., through a graphics processoror accelerator), and to high-speed expansion ports 710, which may acceptvarious expansion cards (not shown). In the implementation, low-speedcontroller 712 is coupled to storage device 706 and low-speed expansionport 714. The low-speed expansion port, which may include variouscommunication ports (e.g., USB, Bluetooth, Ethernet, wireless Ethernet)may be coupled to one or more input/output devices, such as a keyboard,a pointing device, a scanner, or a networking device such as a switch orrouter, e.g., through a network adapter.

The computing device 700 may be implemented in a number of differentforms, as shown in the figure. For example, it may be implemented as astandard server 720, or multiple times in a group of such servers. Itmay also be implemented as part of a rack server system 724. Inaddition, it may be implemented in a personal computer such as a laptopcomputer 722. Alternatively, components from computing device 700 may becombined with other components in a mobile device (not shown), such asdevice 750. Each of such devices may contain one or more of computingdevice 700, 750, and an entire system may be made up of multiplecomputing devices 700, 750 communicating with each other.

Computing device 750 includes a processor 752, memory 764, aninput/output device such as a display 754, a communication interface766, and a transceiver 768, among other components. The device 750 mayalso be provided with a storage device, such as a microdrive or otherdevice, to provide additional storage. Each of the components 750, 752,764, 754, 766, and 768, are interconnected using various buses, andseveral of the components may be mounted on a common motherboard or inother manners as appropriate.

The processor 752 can execute instructions within the computing device750, including instructions stored in the memory 764. The processor maybe implemented as a chipset of chips that include separate and multipleanalog and digital processors. The processor may provide, for example,for coordination of the other components of the device 750, such ascontrol of user interfaces, applications run by device 750, and wirelesscommunication by device 750.

Processor 752 may communicate with a user through control interface 758and display interface 756 coupled to a display 754. The display 754 maybe, for example, a TFT LCD (Thin-Film-Transistor Liquid Crystal Display)or an OLED (Organic Light Emitting Diode) display, or other appropriatedisplay technology. The display interface 756 may comprise appropriatecircuitry for driving the display 754 to present graphical and otherinformation to a user. The control interface 758 may receive commandsfrom a user and convert them for submission to the processor 752. Inaddition, an external interface 762 may be provide in communication withprocessor 752, so as to enable near area communication of device 750with other devices. External interface 762 may provide, for example, forwired communication in some implementations, or for wirelesscommunication in other implementations, and multiple interfaces may alsobe used.

The memory 764 stores information within the computing device 750. Thememory 764 can be implemented as one or more of a computer-readablemedium or media, a volatile memory unit or units, or a non-volatilememory unit or units. Expansion memory 774 may also be provided andconnected to device 750 through expansion interface 772, which mayinclude, for example, a SIMM (Single In Line Memory Module) cardinterface. Such expansion memory 774 may provide extra storage space fordevice 750, or may also store applications or other information fordevice 750. Specifically, expansion memory 774 may include instructionsto carry out or supplement the processes described above, and mayinclude secure information also. Thus, for example, expansion memory 774may be provide as a security module for device 750, and may beprogrammed with instructions that permit secure use of device 750. Inaddition, secure applications may be provided via the SIMM cards, alongwith additional information, such as placing identifying information onthe SIMM card in a non-hackable manner.

The memory may include, for example, flash memory and/or NVRAM memory,as discussed below. In one implementation, a computer program product istangibly embodied in an information carrier. The computer programproduct contains instructions that, when executed, perform one or moremethods, such as those described above. The information carrier is acomputer- or machine-readable medium, such as the memory 764, expansionmemory 774, memory on processor 752, or a propagated signal that may bereceived, for example, over transceiver 768 or external interface 762.

Device 750 may communicate wirelessly through communication interface766, which may include digital signal processing circuitry wherenecessary. Communication interface 766 may provide for communicationsunder various modes or protocols, such as GSM voice calls, SMS, EMS, orMMS messaging, CDMA, TDMA, PDC, WCDMA, CDMA2000, or GPRS, among others.Such communication may occur, for example, through radio-frequencytransceiver 768. In addition, short-range communication may occur, suchas using a Bluetooth, WiFi, or other such transceiver (not shown). Inaddition, GPS (Global Positioning System) receiver module 770 mayprovide additional navigation- and location-related wireless data todevice 750, which may be used as appropriate by applications running ondevice 750.

Device 750 may also communicate audibly using audio codec 760, which mayreceive spoken information from a user and convert it to usable digitalinformation. Audio codec 760 may likewise generate audible sound for auser, such as through a speaker, e.g., in a handset of device 750. Suchsound may include sound from voice telephone calls, may include recordedsound (e.g., voice messages, music files, etc.) and may also includesound generated by applications operating on device 750.

The computing device 750 may be implemented in a number of differentforms, as shown in the figure. For example, it may be implemented as acellular telephone 780. It may also be implemented as part of asmartphone 782, personal digital assistant, or other similar mobiledevice.

Various implementations of the systems and techniques described here canbe realized in digital electronic circuitry, integrated circuitry,specially designed ASICs (application specific integrated circuits),computer hardware, firmware, software, and/or combinations thereof.These various implementations can include implementation in one or morecomputer programs that are executable and/or interpretable on aprogrammable system including at least one programmable processor, whichmay be special or general purpose, coupled to receive data andinstructions from, and to transmit data and instructions to, a storagesystem, at least one input device, and at least one output device.

These computer programs (also known as programs, software, softwareapplications or code) include machine instructions for a programmableprocessor, and can be implemented in a high-level procedural and/orobject-oriented programming language, and/or in assembly/machinelanguage. As used herein, the terms “machine-readable medium”“computer-readable medium” refers to any computer program product,apparatus and/or device (e.g., magnetic discs, optical disks, memory,Programmable Logic Devices (PLDs)) used to provide machine instructionsand/or data to a programmable processor, including a machine-readablemedium that receives machine instructions as a machine-readable signal.The term “machine-readable signal” refers to any signal used to providemachine instructions and/or data to a programmable processor.

To provide for interaction with a user, the systems and techniquesdescribed here can be implemented on a computer having a display device(e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor)for displaying information to the user and a keyboard and a pointingdevice (e.g., a mouse or a trackball) by which the user can provideinput to the computer. Other kinds of devices can be used to provide forinteraction with a user as well; for example, feedback provided to theuser can be any form of sensory feedback (e.g., visual feedback,auditory feedback, or tactile feedback); and input from the user can bereceived in any form, including acoustic, speech, or tactile input.

The systems and techniques described here can be implemented in acomputing system that includes a back end component (e.g., as a dataserver), or that includes a middleware component (e.g., an applicationserver), or that includes a front end component (e.g., a client computerhaving a graphical user interface or a Web browser through which a usercan interact with an implementation of the systems and techniquesdescribed here), or any combination of such back end, middleware, orfront end components. The components of the system can be interconnectedby any form or medium of digital data communication (e.g., acommunication network). Examples of communication networks include alocal area network (“LAN”), a wide area network (“WAN”), and theInternet.

The computing system can include clients and servers. A client andserver are generally remote from each other and typically interactthrough a communication network. The relationship of client and serverarises by virtue of computer programs running on the respectivecomputers and having a client-server relationship to each other.

A number of embodiments have been described. Nevertheless, it will beunderstood that various modifications may be made without departing fromthe spirit and scope of the invention. For example, much of thisdocument has been described with respect to measuring motion data forparticular drills, though other forms of data gathering and comparisonmay also be employed.

In addition, the logic flows depicted in the figures do not require theparticular order shown, or sequential order, to achieve desirableresults. In addition, other steps may be provided, or steps may beeliminated, from the described flows, and other components may be addedto, or removed from, the described systems. Accordingly, otherembodiments are within the scope of the following claims.

What is claimed is:
 1. A computer-implemented athletic performance analysis method, comprising: obtaining, at a computer system, first motion data reflecting motion of a sporting device during one or more drills performed by an athlete; creating and storing action data by identifying a plurality of portions of the first motion data, where each of the portions correspond to one or more actions by the athlete; comparing the action data for the athlete, with the computer system, to one or more groupings of action data, wherein each grouping of action data comprises combined action data for a plurality of other athletes that have been determined to belong in a same athlete skill level classification from among a plurality of athlete skill level classifications; and generating data for a report that reflects a relative athlete skill level classification of the athlete, wherein comparing the action data for the athlete to the one or more groupings of action data comprises identifying the relative athlete skill level classification, from among the plurality of athlete skill level classifications, that has action data that matches the action data for the athlete.
 2. The method of claim 1, further comprising capturing the motion data with a plurality of motion sensors mounted inside a sporting ball.
 3. The method of claim 2, further comprising wirelessly communicating the first motion data over a short-range connection to the computer system.
 4. The method of claim 3, wherein the wireless communicating is instigated by a request from the computer system to a controller in the sporting ball made during period when the sporting ball is not capturing data.
 5. The method of claim 1, wherein the first motion data comprises motion data for the athlete for a plurality of drills executed by the athlete that each represent different multi-step processes performed with the sporting device, and wherein the report represents one or more scores for the athlete in comparison to the one or more groupings of action data.
 6. The method of claim 1, further comprising generating the report to a portable media device to be provided to the athlete.
 7. The method of claim 1, wherein the report includes a ranking of the athlete within a continuum of athletic performance for the plurality of other athletes and one or more instructions directed to reducing weaknesses identified in the athlete's performance.
 8. The method of claim 1, further comprising obtaining second motion data reflecting motion of the sporting device during one or more drills performed by the athlete at a time subsequent to obtaining the first motion data, and performing a comparison of the athlete's performance between obtaining the first motion data and obtaining the second motion data.
 9. The method of claim 1, further comprising comparing information from the first motion data and the second motion data to data representing athletic development of an aggregated plurality of athletes, to generate a predicted athletic performance trend for the athlete.
 10. The method of claim 1, wherein the first motion data represents bouncing of the sporting device, and the report indicates the athlete's ball handling skill in comparison to ball handling skills of the plurality of other athletes that have been determined to belong in a same skill level classification.
 11. The method of claim 1, wherein the action data for the athlete and the combined action data for the plurality of other athletes is matched to common portions of common drills performed by each of the athletes.
 12. The method of claim 1, further comprising providing over a network information about the athlete's performance level to one or more third parties provided access to the information by the athlete.
 13. A computer-implemented athletic performance analysis system, comprising: a data collection interface in a computer system for obtaining first motion data reflecting motion of a sporting device during one or more drills performed by an athlete; a computer-implemented classifier to compare data corresponding to the first motion data to one or more groupings of motion data for drills matching the one or more drills performed by the athlete, wherein each grouping of motion data comprises combined motion data for a plurality of other athletes that have been determined to belong in a same athlete skill level classification from among a plurality of athlete skill level classifications, to determine a relative skill level for the athlete; and a report generator to generate data for a report reflecting a relative skill level classification of the athlete, wherein comparing data corresponding to the first motion data to the one or more groupings of motion data comprises identifying the relative skill level classification, from among the plurality of athlete skill level classifications, that has motion data that matches the first motion data.
 14. The computer-implemented athletic performance analysis system of claim 13, further comprising a classification rules generator to identify common features for athletes of a known skill level and to generate rules for determining how other athlete compare to the known skill level.
 15. The computer-implemented athletic performance analysis system of claim 14, wherein the classification rules generator comprises an expert system that identifies common features in motion-related data from the athletes of a known skill level and generates rules that are predictive for classifying other athletes according to the known skill levels.
 16. The computer-implemented athletic performance analysis system of claim 13, further comprising a trend generator for analyzing the first motion data form the athlete from a first time period and second motion data from a second time period for the athlete, and comparing differences between the first motion data and the second motion data to trend data for the athletes of known skill level to predict a skill level for the athlete.
 17. The computer-implemented athletic performance analysis system of claim 13, further comprising a client computer subsystem proximate to the sporting device and a server computer subsystem remote from the sporting device, wherein the client computing subsystem is programmed to provide the first motion data to the server computer subsystem, and the server computer subsystem is programmed to provide to the client computer subsystem the data for a report reflecting the relative development level of the athlete.
 18. The computer-implemented athletic performance analysis system of claim 17, wherein the server computer subsystem includes a demonstration mode in which data for a first drill is analyzed and reported on, and a full test mode in which data for a plurality of drills other than the first drill are analyzed and reported on.
 19. The computer-implemented athletic performance analysis system of claim 17, wherein the client computer subsystem includes a wireless interface configured to communicate with a motion sensing system inside the sporting device.
 20. The computer-implemented athletic performance analysis system of claim 13, further comprising an accounting module configured to correlate an identity of the client computing subsystem with an account, and to debit an accountholder associated with the account for the report.
 21. The computer-implemented athletic performance analysis system of claim 13, wherein the report includes a ranking of the athlete within a continuum of athletic performance and one or more instructions directed to reducing weaknesses identified in the athlete's performance.
 22. An article comprising one or more tangible computer-readable data storage media containing program code operable to cause one or more machines to perform operations, the operations comprising: obtaining, at a computer system, first motion data reflecting motion of a sporting device during one or more drills performed by an athlete; creating and storing action data by identifying a plurality of portions of the first motion data, where each of the portions correspond to one or more actions by the athlete; comparing the action data for the athlete, with the computer system, to one or more groupings of action data, wherein each grouping of action data comprises combined action data for a plurality of other athletes that have been determined to belong in a same athlete skill level classification from among a plurality of athlete skill level classifications; and generating data for a report that reflects a relative athlete skill level classification of the athlete, wherein comparing the action data for the athlete to the one or more groupings of action data comprises identifying the relative athlete skill level classification, from among the plurality of athlete skill level classifications, that has action data matches the action data for the athlete.
 23. The article of claim 22, wherein the operations further comprise determining a relative skill level for the athlete corresponding to a first drill at a computer local to the sporting device, and determining a relative skill level for the athlete corresponding to a subsequent plurality of drills at a computer system remote from the sporting device.
 24. The article of claim 22, wherein the report includes a ranking of the athlete within a continuum of athletic performance and one or more instructions directed to reducing weaknesses identified in the athlete's performance.
 25. The article of claim 22, wherein the operations further comprise obtaining second motion data reflecting motion of the sporting device during one or more drills performed by the athlete at a time subsequent to obtaining the first motion data, and performing a comparison of the athlete's performance between obtaining the first motion data and obtaining the second motion data.
 26. The article of claim 22, wherein the operations further comprise comparing information from the first motion data and the second motion data to data representing athletic development of an aggregated plurality of athletes, to generate a predicted athletic performance trend for the athlete.
 27. A computer-implemented athletic performance analysis method, comprising: obtaining, via wireless communication devices, motion-related data for a pre-selected set of athletic drills from a plurality of athletes using motion sensors corresponding to an athletic device; analyzing the data obtained from the plurality of athletes to create a predictive standardized test for assessing skill competency; and generating a predictive skill level description for a human subject by statistical analysis that compares motion-related data for the subject for the pre-selected set of athletic drills, to the motion-related data for the plurality of athletes, wherein the predictive skill level description corresponds to an athlete skill level classification shared by groups of the plurality of athletes, selected from a plurality of different athlete skill level classifications, each of the plurality of different athlete skill level classifications representing combined motion-related data from multiple different athletes, other than the athlete, determined to be performing at a common level in a sport.
 28. A computer-implemented athletic performance analysis system, comprising: a data collection interface in a computer system for obtaining first motion data reflecting motion of a sporting device during one or more drills performed by an athlete; means for identifying a skill level for the athlete by comparing data corresponding to the first motion data to one or more groupings of similar data combined from a plurality of athletes that have been determined to belong in a same athlete skill level classification from among a plurality of athlete skill level classifications; and a report generator to generate data for a report reflecting the relative development level of the athlete. 